#ifndef TERRITORIO_H_
#define TERRITORIO_H_

#include <string>
#include <map>
using namespace std;

class Territorio
{
private:
	string nombre;
	unsigned int ejercitos;
	string colorJugador;
	map<string,Territorio*> territoriosAdyacentes;
public:
	Territorio(string nombre);
	
	string getNombre();
	virtual void colocarEjercitos(unsigned int cantidadDeEjercitos, string color);
	virtual void quitarEjercitos(unsigned int cantidadDeEjercitos);
	bool hayEjercitos();
	
	/*@deprecated */
	bool enPoderDeJugador(string color);
	
	void setEnPoderDe(string colorJugador);
	string getEnPoderDe();
	unsigned int getCantidadDeEjercitos();
	void agregarAdyacencia(Territorio* territorio);
	bool esAdyacente(Territorio* unTerritorio);
	map<string,Territorio*>* obtenerTerritoriosAdyacentes();
	
	virtual ~Territorio();
};

#endif /*TERRITORIO_H_*/
